The present inventive concept relates to removable storage devices and systems including same. As the name implies, removable storage devices may be repeatedly installed in and/or disconnected from a host system. Given this hardware configuration, a specialty piece of software (and/or corresponding firmware) called “a file system” that runs on a processor or central processing unit of the host system is responsible for the organization and configuration of data and data files stored by the removable storage device. A great variety of file systems are understood by those skilled in the art, but are generally used to perform a variety of operations such as; data file creation, data file indexing, data write, data read, data erase, data consolidation, etc. One or more “drivers” are also resident in the host system and are used in conjunction with the file system to perform (e.g.) read/write operations in relation to a removable storage device.
During periods of time in which the removable storage device is performing one or more operations, the host may be disconnected, a power supply may be interrupted, or some other error condition may be experienced. As a result such “failure events” (i.e., a condition intentionally or unintentionally interrupting the execution of an ongoing storage device operation), one or more errors may arise in the data being stored in or retrieved from the removable storage device. Additionally, a failure event may result in the corruption of file system information.
For example, most file systems use metadata to organize, identify and track data as it is stored, updated, and read from a removable storage device. As part of (or in response to) the execution of removable storage device operations, it is necessary to update metadata reference by the file system. And it is certainly possible that the interruption of the execution of a particular operation may result in the non-update, or partially updated of metadata.
Hence, it is necessary to provide data and file system information correction and/or protection mechanism(s) to ensure the reliability and enhance the operational robustness of removable storage devices.